#include <stdio.h>

void primeFactorization(int n) {
    printf("%d=", n); // 输出 n 的等号

    // 处理 2 作为因数的情况
    int first = 1; // 标记是否是第一个因子，用来控制'*'的输出
    while (n % 2 == 0) {
        if (first) {
            printf("2");
            first = 0;
        } else {
            printf("*2");
        }
        n /= 2;  // 不断除以 2
    }

    // 处理奇数因子
    for (int i = 3; i * i <= n; i += 2) {
        while (n % i == 0) {
            if (first) {
                printf("%d", i);
                first = 0;
            } else {
                printf("*%d", i);
            }
            n /= i;
        }
    }

    // 如果剩下的是一个大于 2 的质数
    if (n > 2) {
        if (first) {
            printf("%d", n);
        } else {
            printf("*%d", n);
        }
    }

    printf("\n");
}

int main() {
    int n;
    scanf("%d", &n); // 读取输入的整数
    primeFactorization(n); // 分解质因数
    return 0;
}



































#include <stdio.h>
#include <ctype.h> // 用于 isdigit 函数

int main() {
    char input[101];  // 输入字符串，假设最大长度为 100
    scanf("%s", input);  // 读取输入字符串

    for (int i = 0; input[i] != '\0'; i++) 
    {
        if (isalpha(input[i])) {  // 如果当前字符是字母
            printf("%c", input[i]);  // 输出当前字母
            int count = 0;

            // 判断下一个字符是否是数字
            if (isdigit(input[i+1])) {
                // 将数字字符转化为对应的整数
                count = input[i+1] - '0';
                i++;  // 跳过数字字符
            } else {
                count = 1;  // 如果后面没有数字，则默认出现次数为 1
            }

            // 根据出现次数，重复输出字母
            for (int j = 1; j < count; j++) {
                printf("%c", input[i-1]);
            }
        }
    }

    printf("\n");
    return 0;
}

#include <iostream>
#include <vector>
#include <cmath>  // for abs
using namespace std;

// 定义一个结构体表示学生的成绩
struct Student {
    int chinese;  // 语文成绩
    int math;     // 数学成绩
    int english;  // 英语成绩
};

int main() {
    int n;  // 学生数量
    cin >> n;

    vector<Student> students(n);  // 用结构体存储每个学生的信息

    // 输入成绩
    for (int i = 0; i < n; i++) 
    {
        cin >> students[i].chinese >> students[i].math >> students[i].english;
    }

    int count = 0;  // 计数器

    // 双重循环比较每一对学生
    for (int i = 0; i < n; i++) 
    {
        for (int j = i + 1; j < n; j++) 
        {
            // 计算语文、数学、英语的分差
            int chinese_diff = abs
            (students[i].chinese - students[j].chinese);
            int math_diff = abs
            (students[i].math - students[j].math);
            int english_diff = abs
            (students[i].english - students[j].english);
            // 计算总分分差
            int total_diff = abs
            (
    (students[i].chinese + students[i].math + students[i].english) - 
    (students[j].chinese + students[j].math + students[j].english)
            );

            // 判断是否符合条件
if (chinese_diff <= 5 && math_diff <= 5 && english_diff <= 5 && total_diff <= 10) 
{
                count++;
            }
        }
    }

    // 输出结果
    cout << count << endl;

    return 0;
}

#include <iostream>
#include <vector>

using namespace std;

int main() {
    int w, x, h; // 立方体的尺寸
    cin >> w >> x >> h;

    int q; // 切割次数
    cin >> q;

    // 创建一个三维数组表示立方体的状态
    vector<vector<vector<bool>>> is_removed
    (w, vector<vector<bool>>(x, vector<bool>(h, false)));

    // 处理每次切割
    for (int i = 0; i < q; i++) 
    {
        int x1, y1, z1, x2, y2, z2;
        cin >> x1 >> y1 >> z1 >> x2 >> y2 >> z2;

        // 将范围内的方块标记为移除
        for (int xi = x1 - 1; xi < x2; xi++) 
        {
            for (int yi = y1 - 1; yi < y2; yi++) 
            {
                for (int zi = z1 - 1; zi < z2; zi++) 
                {
                    is_removed[xi][yi][zi] = true;
                }
            }
        }
    }

    // 统计剩余的方块数量
    int remaining_volume = 0;
    for (int xi = 0; xi < w; xi++) 
    {
        for (int yi = 0; yi < x; yi++) 
        {
            for (int zi = 0; zi < h; zi++) 
            {
                if (!is_removed[xi][yi][zi]) 
                {
                    remaining_volume++;
                }
            }
        }
    }

    cout << remaining_volume << endl;
    return 0;
}



#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    
    vector<vector<int>> arr(n, vector<int>(m));   // 原始矩阵
    vector<vector<int>> result(n, vector<int>(m)); // 模糊化后的结果矩阵

    // 输入矩阵
    for (int i = 0; i < n; i++) 
    {
        for (int j = 0; j < m; j++) 
        {
            cin >> arr[i][j];
        }
    }

    // 模糊化处理
    for (int i = 0; i < n; i++) 
    {
        for (int j = 0; j < m; j++) 
        {
            if (i == 0 || j == 0 || i == n - 1 || j == m - 1) 
            {
                // 最外层保持不变
                result[i][j] = arr[i][j];
            } else {
                // 中间部分计算平均值（包括上下左右及自身）
                result[i][j] = round((arr[i][j] + arr[i-1][j] + arr[i+1][j] + arr[i][j-1] + arr[i][j+1]) / 5.0);
            }
        }
    }

    // 输出结果
    for (int i = 0; i < n; i++) 
    {
        for (int j = 0; j < m; j++) 
        {
            cout << result[i][j];
            if (j < m - 1) 
            { // 控制列间空格，最后一列不加空格
                cout << " ";
            }
        }
        cout << endl;
    }

    return 0;
}





























#include <stdio.h>

int main() {
    int n;
    char type;
    scanf("%d %c", &n, &type);

    for (int i = 1; i <= n; i++) {
        // 打印空格
        for (int j = n - i; j > 0; j--) {
            printf(" ");
        }
        // 打印星号
        for (int k = 1; k <= 2 * i - 1; k++) {
            if (type == 'y') {
                printf("*");
            } else {
                if (k == 1 || k == 2 * i - 1) {
                    printf("*");
                } else {
                    printf(" ");
                }
            }
        }
        printf("\n");
    }

    for (int i = n - 1; i > 0; i--) {
        // 打印空格
        for (int j = n - i; j > 0; j--) {
            printf(" ");
        }
        // 打印星号
        for (int k = 1; k <= 2 * i - 1; k++) {
            if (type == 'y') {
                printf("*");
            } else {
                if (k == 1 || k == 2 * i - 1) {
                    printf("*");
                } else {
                    printf(" ");
                }
            }
        }
        printf("\n");
    }

    return 0;
}
